﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.IO;
using System.Configuration;

public partial class ReimprimirManifiestoMinisterio : PageBase
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            cargarnumeromanifiestoimprimir();
        }
    }



    #region objTableManifiesto
    private DataTable objTableManifiesto
    {
        get
        {
            DataTable objTable = null;
            if (Cache["ReimprimirManifiestoMinisterio.aspx" + Session.SessionID] != null)
                objTable = (DataTable)Cache["ReimprimirManifiestoMinisterio.aspx" + Session.SessionID];
            return objTable;
        }
        set
        {
            if (value != null)
            {
                Cache.Insert("ReimprimirManifiestoMinisterio.aspx" + Session.SessionID, value, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }
    }
    #endregion


    #region cargar numero manifiestos
    protected void cargarnumeromanifiestoimprimir()
    {
        string strUsuario = "";
        string strClave = "";
       
        if (Usuario.UsuId == 9)
        {
            strUsuario = "clara13@270";
            strClave = "cla1020736056";
        }
        else if (Usuario.UsuId == 15)
        {
            strUsuario = "paul91@270";
            strClave = "paul91541069";
        }

        try
        {
            string strCadena = "<?xml version='1.0' encoding='ISO-8859-1' ?><root><acceso><username" + strUsuario + "/username><password" + strClave + "/password></acceso><solicitud><tipo>3</tipo><procesoid>4</procesoid></solicitud><variables>NUMPLACA, NUMMANIFIESTOCARGA, mannombretitular</variables><documento><NUMNITEMPRESATRANSPORTE>8600390049</NUMNITEMPRESATRANSPORTE><estado>'AC'</estado></documento></root>";
            wsMintransporte.BPMServicesClient obj = new wsMintransporte.BPMServicesClient();
            string strSalida = obj.AtenderMensajeRNDC(strCadena);

            DataSet ds = new DataSet();
            StringReader reader = new StringReader(strSalida);
            ds.ReadXml(reader);
            foreach (DataTable myTable in ds.Tables)
            {
                foreach (DataRow myRow in myTable.Rows)
                {
                    myRow["mannombretitular"] = myRow["NUMMANIFIESTOCARGA"] + " " + myRow["NUMPLACA"] + " " + myRow["mannombretitular"];
                }
            }


            if (ds != null)
            {
                ddlManifiesto.DataSource = ds.Tables[0];
                ddlManifiesto.TextField = "mannombretitular";
                ddlManifiesto.ValueField = "NUMMANIFIESTOCARGA";
                ddlManifiesto.DataBind();
            }
        }

        catch (Exception ex)
        {

            msgBox1.alert(ex.Message.ToString());
        }
    }
    #endregion
    #region cargar datos manifiesto
    protected void cargardatosmanifiesto_Click(object sender, EventArgs e)
    {
        string strUsuario = "";
        string strClave = "";
        
        if (Usuario.UsuId == 9)
        {
            strUsuario = "clara13@270";
            strClave = "cla1020736056";
        }
        else if (Usuario.UsuId == 15)
        {
            strUsuario = "paul91@270";
            strClave = "paul91541069";
        }

        try
        {
            string strCadena = "<?xml version='1.0' encoding='ISO-8859-1' ?><root><acceso><username" + strUsuario + "/username><password" + strClave + "/password></acceso><solicitud><tipo>3</tipo><procesoid>4</procesoid></solicitud><variables>nummanifiestocarga, ingresoid, fechaexpedicionmanifiesto, nomoperaciontransporte, manorigen, mandestino, mannombretitular, numidtitularmanifiesto, mandirecciontitular, mantelefonotitular, manciudadtitular, mannombremarca, numplaca, mannombremarca, numplacaremolque, manconfiguracionresultante, manpeso, mannropoliza, manaseguradorapoliza, manfechvenci, mannombreconductor, numidconductor, mandireccionconductor, mantelefonoconductor, mancategorialicencia, manlicencia, manciudadconductor, mantenedorvehiculo, manidentenedorvehiculo, mandirtenedorvehiculo, manteltenedorvehiculo, manciudtenedorvehiculo, valorfletepactadoviaje, retencionfuentemanifiesto, mandescu_ley, manvlrtotflete, valoranticipomanifiesto, mansaldo, municipiopagosaldo, fechapagosaldomanifiesto, responsablepagocargue, responsablepagodescargue, observaciones</variables><documento><NUMNITEMPRESATRANSPORTE>8600390049</NUMNITEMPRESATRANSPORTE>";
            strCadena = strCadena + "<NUMMANIFIESTOCARGA>'" + ddlManifiesto.Value.ToString() + "'</NUMMANIFIESTOCARGA></documento></root>";

            wsMintransporte.BPMServicesClient obj = new wsMintransporte.BPMServicesClient();
            string strSalida = obj.AtenderMensajeRNDC(strCadena);

            DataSet ds = new DataSet();
            StringReader reader = new StringReader(strSalida);
            ds.ReadXml(reader);

            if (ds.Tables[0].Rows.Count > 0)
            {
                txtRadicado.Text = ds.Tables[0].Rows[0]["ingresoid"].ToString();
                txtFechaExpedicion.Text = ds.Tables[0].Rows[0]["fechaexpedicionmanifiesto"].ToString();
                txtPlaca.Text = ds.Tables[0].Rows[0]["numplaca"].ToString();
                txtPlacaSemiremolque.Text = ds.Tables[0].Rows[0]["numplacaremolque"].ToString();
                txtOrigen.Text = ds.Tables[0].Rows[0]["manorigen"].ToString();
                txtDestino.Text = ds.Tables[0].Rows[0]["mandestino"].ToString();
                txtConductor.Text = ds.Tables[0].Rows[0]["mannombreconductor"].ToString();
                txtIdentificacion.Text = ds.Tables[0].Rows[0]["numidconductor"].ToString();
                objTableManifiesto = ds.Tables[0];
            }
             }
        catch (Exception ex)
        {

            msgBox1.alert(ex.Message.ToString());
        }
           
    }
    #endregion
    
    protected void ReimprimirManifiesto_Click(object sender, EventArgs e)
    {
        string strUsuario = "";
        string strClave = "";
        
        if (Usuario.UsuId == 9)
        {
            strUsuario = "clara13@270";
            strClave = "cla1020736056";
        }
        else if (Usuario.UsuId == 15)
        {
            strUsuario = "paul91@270";
            strClave = "paul91541069";
        }

        try
         {
            
             #region Guarda Manifiesto localmente
             Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
             foreach (DataRow objRow in objTableManifiesto.Rows)
             {

                 bool boolBandera = true;
                 var datos = from a in contexto.IMPRIMIR_MANIFIESTO

                             where a.nummanifiestocarga == ddlManifiesto.Value.ToString()
                             select a;

                 foreach (var v in datos)
                 {
                     boolBandera = false;
                 }

                 if (boolBandera)
                 {
                     //////////////////////////////////////////////
                     Model.IMPRIMIR_MANIFIESTO objManifiesto = new Model.IMPRIMIR_MANIFIESTO();
                     objManifiesto.nummanifiestocarga = objRow["nummanifiestocarga"].ToString();
                     objManifiesto.ingresoid = Convert.ToInt32(objRow["ingresoid"].ToString());
                     objManifiesto.fechaexpedicionmanifiesto = objRow["fechaexpedicionmanifiesto"].ToString();
                     objManifiesto.nomoperaciontransporte = objRow["nomoperaciontransporte"].ToString();
                     objManifiesto.manorigen = objRow["manorigen"].ToString();
                     objManifiesto.mandestino = objRow["mandestino"].ToString();
                     objManifiesto.mannombretitular = objRow["mannombretitular"].ToString();
                     objManifiesto.numidtitularmanifiesto = objRow["numidtitularmanifiesto"].ToString();
                     objManifiesto.mandirecciontitular = objRow["mandirecciontitular"].ToString();
                     objManifiesto.mantelefonotitular = objRow["mantelefonotitular"].ToString();
                     objManifiesto.manciudadtitular = objRow["manciudadtitular"].ToString();
                     objManifiesto.numplaca = objRow["numplaca"].ToString();
                     objManifiesto.mannombremarca = objRow["mannombremarca"].ToString();
                     objManifiesto.numplacaremolque = objRow["numplacaremolque"].ToString();
                     objManifiesto.manconfiguracionresultante = objRow["manconfiguracionresultante"].ToString();
                     objManifiesto.manpeso = Convert.ToInt32(objRow["manpeso"].ToString());
                     objManifiesto.mannropoliza = objRow["mannropoliza"].ToString();
                     objManifiesto.manaseguradorapoliza = objRow["manaseguradorapoliza"].ToString();
                     objManifiesto.manfechvenci = objRow["manfechvenci"].ToString();
                     objManifiesto.mannombreconductor = objRow["mannombreconductor"].ToString();
                     objManifiesto.numidconductor = objRow["numidconductor"].ToString();
                     objManifiesto.mandireccionconductor = objRow["mandireccionconductor"].ToString();
                     objManifiesto.mantelefonoconductor = objRow["mantelefonoconductor"].ToString();
                     objManifiesto.manlicencia = objRow["manlicencia"].ToString();
                     objManifiesto.manciudadconductor = objRow["manciudadconductor"].ToString();
                     objManifiesto.mantenedorvehiculo = objRow["mantenedorvehiculo"].ToString();
                     objManifiesto.manidentenedorvehiculo = objRow["manidentenedorvehiculo"].ToString();
                     objManifiesto.mandirtenedorvehiculo = objRow["mandirtenedorvehiculo"].ToString();
                     objManifiesto.manteltenedorvehiculo = objRow["manteltenedorvehiculo"].ToString();
                     objManifiesto.manciudtenedorvehiculo = objRow["manciudtenedorvehiculo"].ToString();
                     objManifiesto.valorfletepactadoviaje = objRow["valorfletepactadoviaje"].ToString();
                     objManifiesto.retencionfuentemanifiesto = objRow["retencionfuentemanifiesto"].ToString();
                     objManifiesto.retencionicamanifiestocarga = objRow["mandescu_ley"].ToString();
                     objManifiesto.manvlrtotflete = objRow["manvlrtotflete"].ToString();
                     objManifiesto.valoranticipomanifiesto = objRow["valoranticipomanifiesto"].ToString();
                     objManifiesto.mansaldo = objRow["mansaldo"].ToString();
                     objManifiesto.municipiopagosaldo = objRow["municipiopagosaldo"].ToString();
                     objManifiesto.fechapagosaldomanifiesto = objRow["fechapagosaldomanifiesto"].ToString();
                     objManifiesto.responsablepagocargue = objRow["responsablepagocargue"].ToString();
                     objManifiesto.responsablepagodescargue = objRow["responsablepagodescargue"].ToString();
                     objManifiesto.observaciones = objRow["observaciones"].ToString();
                     contexto.IMPRIMIR_MANIFIESTO.InsertOnSubmit(objManifiesto);
                     contexto.SubmitChanges();
                 }
             } 
             #endregion
            //
            //CONSULTAS DE REMESAS
             string strCadena = "<?xml version='1.0' encoding='ISO-8859-1' ?><root><acceso><username" + strUsuario + "/username><password" + strClave + "/password></acceso><solicitud><tipo>3</tipo><procesoid>3</procesoid></solicitud><variables>consecutivoremesa, nomunidadmedidacapacidad, cantidadcargada, naturalezacarga, tipoempaque, descripcioncortaproducto, mercanciaremesa, numidremitente, remremitente, remdirremitente, rem_orig, numiddestinatario, remdestinatario, remdirdestinatario, rem_desti, nomduenopoliza, nummanifiestocarga, horaspactocarga, horaspactodescargue, fechallegadacargue, horallegadacargueremesa, fechasalidacargue, horasalidacargueremesa, remfechallegadescargue, remhorallegadescargue, remfechafindescargue, remhorafindescargue</variables><documento><NUMNITEMPRESATRANSPORTE>8600390049</NUMNITEMPRESATRANSPORTE>";
             strCadena = strCadena + "<NUMMANIFIESTOCARGA>'" + ddlManifiesto.Value.ToString() + "'</NUMMANIFIESTOCARGA></documento></root>";

             wsMintransporte.BPMServicesClient obj = new wsMintransporte.BPMServicesClient();
             string strSalida = obj.AtenderMensajeRNDC(strCadena);

             DataSet ds = new DataSet();
             StringReader reader = new StringReader(strSalida);
             //remesas asociadas
             ds.ReadXml(reader);
             #region Guarda Remesas localmente
             foreach (DataRow objRow in ds.Tables[0].Rows)
             {
                 if (!ds.Tables[0].Rows[0][0].ToString().Contains("Error RNDC11") )
                 {
                     bool boolBandera = true;
                     var datos = from a in contexto.IMPRIMIR_REMESA

                                 where a.consecutivoremesa == objRow["consecutivoremesa"].ToString()
                                 select a;

                     foreach (var v in datos)
                     {
                         boolBandera = false;
                     }

                     if (boolBandera)
                     {
                         //////////////////////////////////////////////
                         Model.IMPRIMIR_REMESA objRemesa = new Model.IMPRIMIR_REMESA();
                         objRemesa.nummanifiestocarga = objRow["nummanifiestocarga"].ToString();
                         objRemesa.consecutivoremesa = objRow["consecutivoremesa"].ToString();
                         objRemesa.nomunidadmedidacapacidad = objRow["nomunidadmedidacapacidad"].ToString();
                         objRemesa.cantidadcargada = objRow["cantidadcargada"].ToString();
                         objRemesa.naturalezacarga = objRow["naturalezacarga"].ToString();
                         objRemesa.tipoempaque = objRow["tipoempaque"].ToString();
                         objRemesa.descripcioncortaproducto = objRow["descripcioncortaproducto"].ToString();
                         objRemesa.mercanciaremesa = objRow["mercanciaremesa"].ToString();
                         objRemesa.numidremitente = objRow["numidremitente"].ToString();
                         objRemesa.remremitente = objRow["remremitente"].ToString();
                         objRemesa.remdirremitente = objRow["remdirremitente"].ToString();
                         objRemesa.rem_orig = objRow["rem_orig"].ToString();
                         objRemesa.numiddestinatario = objRow["numiddestinatario"].ToString();
                         objRemesa.remdestinatario = objRow["remdestinatario"].ToString();
                         objRemesa.remdirdestinatario = objRow["remdirdestinatario"].ToString();
                         objRemesa.rem_desti = objRow["rem_desti"].ToString();
                         objRemesa.nomduenopoliza = objRow["nomduenopoliza"].ToString();
                         objRemesa.horaspactocarga = objRow["horaspactocarga"].ToString();
                         objRemesa.horaspactodescargue = objRow["horaspactodescargue"].ToString();
                         objRemesa.fechallegadacargue = objRow["fechallegadacargue"].ToString();
                         objRemesa.horallegadacargueremesa = objRow["horallegadacargueremesa"].ToString();
                         objRemesa.fechasalidacargue = objRow["fechasalidacargue"].ToString();
                         objRemesa.horasalidacargueremesa = objRow["horasalidacargueremesa"].ToString();
                         objRemesa.remfechallegadescargue = objRow["remfechallegadescargue"].ToString();
                         objRemesa.remhorallegadescargue = objRow["remhorallegadescargue"].ToString();
                         objRemesa.remfechafindescargue = objRow["remfechafindescargue"].ToString();
                         objRemesa.remhorafindescargue = objRow["remhorafindescargue"].ToString();

                         contexto.IMPRIMIR_REMESA.InsertOnSubmit(objRemesa);
                         contexto.SubmitChanges();

                     }
                 }
             #endregion
             }

             Session["nummanifiestocarga"] = ddlManifiesto.Value.ToString();
            
             System.Text.StringBuilder l_msg = new System.Text.StringBuilder();
             l_msg.Append(@"<script language=javascript>");
             l_msg.Append(@"window.open('Reimprimir.aspx" + @"', 'VentanaImpresion','location=0, status=0, directories=0, width=800, height=600, resizable=no, hotkeys=no, scrollbars=yes, toolbar=no, menubar=no, personalbar=no');</script>");
             Response.Write(l_msg.ToString());
          
        }
        catch (Exception ex)
        {

            msgBox1.alert(ex.Message.ToString());
        }

    }

    public Model.IMPRIMIR_REMESA objManifiesto { get; set; }
}